package com.delio.client.pagos.precios;

import java.util.ArrayList;
import java.util.List;

import com.delio.client.idioma.DelioConstants;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.util.IconHelper;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.NumberField;
import com.extjs.gxt.ui.client.widget.layout.FormData;
import com.google.gwt.core.client.GWT;

public class PanelNuevoPrecio extends FormPanel {

	private DelioConstants k = GWT.create(DelioConstants.class);

	private NumberField txtPrecio1;
	private NumberField txtPrecio2;

	public Button btnRegistrar;

	
	private Integer precio1_id;
	private Integer precio2_id;
	
	
	public PanelNuevoPrecio() {
		super();
		setHeaderVisible(false);
		setFrame(true);
		setPadding(20);
		setLabelWidth(150);
	
		Precios.panelnuevoprecio=this;
		Precios.getPrecios();

// 
		btnRegistrar = new Button(k.registrar(),
				IconHelper.createPath("images/icons/save_all.png"));
		btnRegistrar.setSize(80, 30);
		btnRegistrar.setEnabled(false);
		btnRegistrar.addSelectionListener(new SelectionListener<ButtonEvent>() {

			@Override
			public void componentSelected(ButtonEvent ce) {
				save();
				
				btnRegistrar.setEnabled(false);
				

			}
		});

	
		txtPrecio1 = new NumberField();
		txtPrecio1.setAllowBlank(false);
		txtPrecio1.setFieldLabel(k.precioExtra());
		txtPrecio1.setPropertyEditorType(Double.class);
		txtPrecio1.addListener(Events.KeyPress,new Listener<BaseEvent>() {

			@Override
			public void handleEvent(BaseEvent be) {
				if(txtPrecio1.getValue()!=null)
				  btnRegistrar.setEnabled(true);
				
			}
		
		
		});
		

		txtPrecio2 = new NumberField();
		txtPrecio2.setAllowBlank(false);
		txtPrecio2.setFieldLabel(k.precioTardanza());
		txtPrecio2.setPropertyEditorType(Double.class);
		txtPrecio2.addListener(Events.KeyPress,new Listener<BaseEvent>() {

			@Override
			public void handleEvent(BaseEvent be) {
				if(txtPrecio2.getValue()!=null)
				  btnRegistrar.setEnabled(true);
				
			}
		
		
		});
		
		add(txtPrecio1, new FormData("85%"));
		add(txtPrecio2, new FormData("85%"));
	//	add(status, new FormData("100%"));
		addButton(btnRegistrar);
		//getButtonBar().add(status);
	
		setButtonAlign(HorizontalAlignment.RIGHT);
	}

	private void save(){
		
	
	
	if(txtPrecio1.getValue()!=null || txtPrecio2.getValue()!=null){
		Double precio1=txtPrecio2.getValue().doubleValue();
		Double precio2=txtPrecio1.getValue().doubleValue();
		
		   
		
		   Precio pr1=new Precio();
		   pr1.setId(precio1_id);
		   pr1.setPrecio(precio1);
		   
		   Precio pr2=new Precio();
		   pr2.setId(precio2_id);
		   pr2.setPrecio(precio2);
		
		List<Precio>lista=new ArrayList<Precio>();
		lista.add(pr1);
		lista.add(pr2);
		
		Precios.save(lista);
	   }
	else{
		MessageBox.alert(k.sistemaDelio(), "Valores nulos no permitidos", null);	
		
	}
	
	
}
	
	public void setPrecios(List<Precio> precio){
	
		for(Precio p:precio){
			
			if(p.getId()==1){
			 txtPrecio2.setValue(p.getPrecio());
			
			 precio1_id=p.getId();  
			}
			if(p.getId()==2){
				 txtPrecio1.setValue(p.getPrecio());
				
				 precio2_id=p.getId();  	 
			}
			
		
		}
		
	}
}
